.\" Man page generated from reStructuredText.
.
.TH "RADOSGW" "8" "Mar 12, 2022" "dev" "Ceph"
.SH NAME
radosgw \- rados REST gateway
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH 提纲
.nf
\fBradosgw\fP
.fi
.sp
.SH 描述
.sp
\fBradosgw\fP 是 RADOS 对象存储的一个 HTTP REST 网关，
是 Ceph 分布式存储系统的一部分。
它是用 libfcgi 实现的一个 FastCGI 模块，
可联合任何支持 FastCGI 功能的网页服务器使用。
.SH 选项
.INDENT 0.0
.TP
.B \-c ceph.conf, \-\-conf=ceph.conf
用指定的 \fBceph.conf\fP 配置文件而非默认的 \fB/etc/ceph/ceph.conf\fP 来确定启动时所需的监视器地址。
.UNINDENT
.INDENT 0.0
.TP
.B \-m monaddress[:port]
连接到指定监视器，而非通过 \fBceph.conf\fP 查询。
.UNINDENT
.INDENT 0.0
.TP
.B \-i ID, \-\-id ID
设置 radosgw 名字的 ID 部分。
.UNINDENT
.INDENT 0.0
.TP
.B \-n TYPE.ID, \-\-name TYPE.ID
设置网关的 rados 用户名（如 client.radosgw.gateway ）。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cluster NAME
设置集群名称（默认： ceph ）
.UNINDENT
.INDENT 0.0
.TP
.B \-d
在前台运行，日志记录到标准错误
.UNINDENT
.INDENT 0.0
.TP
.B \-f
在前台运行，日志记录到正常位置
.UNINDENT
.INDENT 0.0
.TP
.B \-\-rgw\-socket\-path=path
指定 Unix 域套接字的路径
.UNINDENT
.INDENT 0.0
.TP
.B \-\-rgw\-region=region
radosgw 所在 region
.UNINDENT
.INDENT 0.0
.TP
.B \-\-rgw\-zone=zone
radosgw 所在的区域
.UNINDENT
.SH 配置
.sp
先前的 RADOS 网关配置依赖 \fBApache\fP 和 \fBmod_fastcgi\fP ；
现在则用 \fBmod_proxy_fcgi\fP 替换了 \fBmod_fastcgi\fP ，
\fBmod_proxy_fcgi\fP 的工作方式不同于传统的 FastCGI 模块，
它需要 \fBmod_proxy\fP 模块所支持的 FastCGI 协议。
所以，要处理 FastCGI 协议，服务器需同时有
\fBmod_proxy\fP 和 \fBmod_proxy_fcgi\fP 模块。
不像 \fBmod_fastcgi\fP ， \fBmod_proxy_fcgi\fP 不能启动应用进程。
某些平台提供了 \fBfcgistarter\fP 来实现此功能。
然而， FastCGI 应用框架有可能具备外部启动或进程管理功能。
.sp
\fBApache\fP 可以通过本机 TCP 连接或 Unix 域套接字使用
\fBmod_proxy_fcgi\fP 模块。不支持 Unix 域套接字的 \fBmod_proxy_fcgi\fP ，
像 Apache 2.2 和 2.4 的早期版本，
必需通过本机 TCP 连接。
之后的 Apache （如 2.4.9 ）以及更高版本支持 unix 域套接字，
因此它们支持 unix 域套接字配置、而非本机 TCP 。
.sp
下面的步骤展示了一些配置文件内容，
有 Ceph 配置文件 \fB/etc/ceph/ceph.conf\fP ，
和网关配置文件 \fB/etc/httpd/conf.d/rgw.conf\fP （基于 RPM 的发行版），
或者 \fB/etc/apache2/conf\-available/rgw.conf\fP （基于 Debian 的发行版），
本机 TCP 和通过 unix 域套接字的配置都有：
.INDENT 0.0
.IP 1. 3
对于搭载 Apache 2.2 以及 Apache 2.4 早期版本的发行版来说，
它们使用 TCP 且不支持 Unix 域套接字，
把下面的内容加进 \fB/etc/ceph/ceph.conf\fP 文件：
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
[client.radosgw.gateway]
host = {hostname}
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw socket path = ""
log file = /var/log/ceph/client.radosgw.gateway.log
rgw frontends = fastcgi socket_port=9000 socket_host=0.0.0.0
rgw print continue = false
.ft P
.fi
.UNINDENT
.UNINDENT
.IP 2. 3
把下列内容加入网关配置文件：
.sp
在 Debian/Ubuntu 上，加入 \fB/etc/apache2/conf\-available/rgw.conf\fP
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html

ErrorLog /var/log/apache2/rgw_error.log
CustomLog /var/log/apache2/rgw_access.log combined

# LogLevel debug

RewriteEngine On

RewriteRule .* \- [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

SetEnv proxy\-nokeepalive 1

ProxyPass / fcgi://localhost:9000/

</VirtualHost>
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
在 CentOS/RHEL 上，加入 \fB/etc/httpd/conf.d/rgw.conf\fP:
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html

ErrorLog /var/log/httpd/rgw_error.log
CustomLog /var/log/httpd/rgw_access.log combined

# LogLevel debug

RewriteEngine On

RewriteRule .* \- [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

SetEnv proxy\-nokeepalive 1

ProxyPass / fcgi://localhost:9000/

</VirtualHost>
.ft P
.fi
.UNINDENT
.UNINDENT
.IP 3. 3
对于搭载了支持 Unix 域套接字的 Apache 2.4.9 及更高版的发行版，可使用下列配置：
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
[client.radosgw.gateway]
host = {hostname}
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
log file = /var/log/ceph/client.radosgw.gateway.log
rgw print continue = false
.ft P
.fi
.UNINDENT
.UNINDENT
.IP 4. 3
把下列内容加入网关配置文件中：
.sp
在 CentOS/RHEL 上，加入 \fB/etc/httpd/conf.d/rgw.conf\fP:
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html

ErrorLog /var/log/httpd/rgw_error.log
CustomLog /var/log/httpd/rgw_access.log combined

# LogLevel debug

RewriteEngine On

RewriteRule .* \- [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

SetEnv proxy\-nokeepalive 1

ProxyPass / unix:///var/run/ceph/ceph.radosgw.gateway.fastcgi.sock|fcgi://localhost:9000/

</VirtualHost>
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
请注意， \fBApache 2.4.7\fP 不支持 Unix 域套接字，
所以必须配置成本机 TCP 。
Unix 域套接字支持存在于 \fBApache 2.4.9\fP 及其后续版本中。
.IP 5. 3
给 radosgw 生成一个密钥，用于到集群认证。
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
ceph\-authtool \-C \-n client.radosgw.gateway \-\-gen\-key /etc/ceph/keyring.radosgw.gateway
ceph\-authtool \-n client.radosgw.gateway \-\-cap mon \(aqallow rw\(aq \-\-cap osd \(aqallow rwx\(aq /etc/ceph/keyring.radosgw.gateway
.ft P
.fi
.UNINDENT
.UNINDENT
.IP 6. 3
把密钥导入集群。
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
ceph auth add client.radosgw.gateway \-\-in\-file=keyring.radosgw.gateway
.ft P
.fi
.UNINDENT
.UNINDENT
.IP 7. 3
启动 Apache 和 radosgw 。
.sp
在 Debian/Ubuntu 上:
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
sudo /etc/init.d/apache2 start
sudo /etc/init.d/radosgw start
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
在 CentOS/RHEL 上:
.INDENT 3.0
.INDENT 3.5
.sp
.nf
.ft C
sudo apachectl start
sudo /etc/init.d/ceph\-radosgw start
.ft P
.fi
.UNINDENT
.UNINDENT
.UNINDENT
.SH 记录使用日志
.sp
\fBradosgw\fP 会异步地维护使用率日志，
它会累积用户操作统计并周期性地刷回。
可用 \fBradosgw\-admin\fP 访问和管理日志。
.sp
记录的信息包括数据传输总量、
操作总量、成功操作总量。
这些数据是按小时记录到桶所有者名下的，
除非操作是针对服务的（如罗列桶时），
这时会记录到操作用户名下。
.sp
下面是个配置实例：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
[client.radosgw.gateway]
rgw enable usage log = true
rgw usage log tick interval = 30
rgw usage log flush threshold = 1024
rgw usage max shards = 32
rgw usage max user shards = 1
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
碎片总数决定着总共需要多少对象来保存使用日志信息。
每用户碎片数确定了为单个用户保存使用信息需多少对象。
tick interval 可配置刷回日志的间隔秒数，
flush threshold 决定了保留的日志条数达到多少才调用异步刷回。
.SH 使用范围
.sp
\fBradosgw\fP 是 Ceph 的一部分，这是个伸缩力强、开源、
分布式的存储系统，更多信息参见 \fI\%https://docs.ceph.com\fP 。
.SH 参考
.sp
ceph(8)
radosgw\-admin(8)
.SH COPYRIGHT
2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0)
.\" Generated by docutils manpage writer.
.
